package com.bailian.system.mapper;

import java.util.List;
import com.bailian.system.domain.BlAppointment;
import com.bailian.system.domain.vo.BlAppointmentVo;

/**
 * 仓库预约列表Mapper接口
 * 
 * @author bailian
 * @date 2025-08-04
 */
public interface BlAppointmentMapper 
{
    /**
     * 查询仓库预约列表
     * 
     * @param appointmentId 仓库预约列表主键
     * @return 仓库预约列表
     */
    public BlAppointment selectBlAppointmentByAppointmentId(Long appointmentId);

    /**
     * 查询仓库预约列表列表
     * 
     * @param blAppointment 仓库预约列表
     * @return 仓库预约列表集合
     */
    public List<BlAppointment> selectBlAppointmentList(BlAppointment blAppointment);

    /**
     * 新增仓库预约列表
     * 
     * @param blAppointment 仓库预约列表
     * @return 结果
     */
    public int insertBlAppointment(BlAppointment blAppointment);

    /**
     * 修改仓库预约列表
     * 
     * @param blAppointment 仓库预约列表
     * @return 结果
     */
    public int updateBlAppointment(BlAppointment blAppointment);

    /**
     * 删除仓库预约列表
     * 
     * @param appointmentId 仓库预约列表主键
     * @return 结果
     */
    public int deleteBlAppointmentByAppointmentId(Long appointmentId);

    /**
     * 批量删除仓库预约列表
     * 
     * @param appointmentIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBlAppointmentByAppointmentIds(Long[] appointmentIds);

    // ========== 关联查询方法 ==========
    
    /**
     * 查询仓库预约列表（包含关联的仓库、用户、园区信息）
     * 
     * @param blAppointment 仓库预约列表查询条件
     * @return 仓库预约列表视图对象集合
     */
    public List<BlAppointmentVo> selectBlAppointmentVoList(BlAppointment blAppointment);

    /**
     * 查询仓库预约详情（包含关联的仓库、用户、园区信息）
     * 
     * @param appointmentId 仓库预约列表主键
     * @return 仓库预约列表视图对象
     */
    public BlAppointmentVo selectBlAppointmentVoByAppointmentId(Long appointmentId);
}
